package com.sefon.smarteconomy.utils;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 
* Copyright: Copyright (c) 2018 SefonSoft
* 
* @ClassName: ApplicationContextFactory.java
* @Description: 丢个类 占地方
*
* @version: v1.0.0
* @author: SF2170
* @date: 2018年3月21日下午2:51:45
*
 */
public class ApplicationContextFactory implements ApplicationContextAware {
	private static ApplicationContext appCtx;

	/**
	 * 此方法可以把ApplicationContext对象inject到当前类中作为一个静态成员变量。
	 * @param applicationContext ApplicationContext 对象.
	 * @throws BeansException
	 */
	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		synchronized(this) {
			appCtx = applicationContext;
		}
	}

	/**
	 * 这是一个便利的方法，帮助我们快速得到一个BEAN
	 * @param beanName bean的名字
	 * @return 返回一个bean对象
	 */
	public static Object getBean(Class<?> c) {
		return appCtx.getBean(c);
	}

}
